package com.micro.ai.template.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.micro.ai.template.entity.Category;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 分类Mapper接口
 * 
 * @author micro-ai
 * @since 0.0.1
 */
@Mapper
public interface CategoryMapper extends BaseMapper<Category> {

    /**
     * 查询分类树
     */
    List<Category> selectCategoryTree();

    /**
     * 根据父分类ID查询子分类
     */
    List<Category> selectByParentId(@Param("parentId") Long parentId);

    /**
     * 根据路径查询分类
     */
    List<Category> selectByPath(@Param("path") String path);

    /**
     * 更新分类统计信息
     */
    int updateCategoryStats(@Param("categoryId") Long categoryId, @Param("field") String field, @Param("increment") Integer increment);

    /**
     * 更新分类路径
     */
    int updateCategoryPath(@Param("categoryId") Long categoryId, @Param("path") String path);

    /**
     * 更新子分类数量
     */
    int updateChildrenCount(@Param("parentId") Long parentId, @Param("increment") Integer increment);
}
